const express = require('express');
const mysql = require('mysql');
const tools = require('../../lib/tools.js');

/**
 * banner管理路由
 */
module.exports = function() {
    let router = express.Router();

    // 定义查询数据库池 
    let db = mysql.createPool({
        host:'localhost',
        user:'root',
        password:'admin',
        database:'blogapp'
    })
    // banner数据处理
    router.get('/', (req, res) => {
        switch (req.query.act) {
            case 'mod':
                db.query(`SELECT * FROM banner_table WHERE ID=${req.query.id}`,
                (err, data) =>{
                    if (err) {
                        console.error(err);
                        res.status(500).send('数据库错误。').end();
                    } else if(data.length == 0) {
                        res.status(404).send('查无此数据。').end();
                    } else{
                        // 查询banner数据
                        db.query(`SELECT * FROM banner_table`, (err, banner_data) => {
                            if (err) {
                                res.status(500).send('数据库错误。').end();
                            } else {
                                // 渲染并传参
                                res.render('./admin/banner.ejs',{banner_data,mod_data:data[0]});
                            }
                        });
                    }
                })
                break;
            case 'del':
                // 删除所指定数据
                db.query(`DELETE FROM banner_table WHERE ID=('${req.query.id}')`, 
                (err, data) => {
                    if (err) {
                        console.error(err);
                        res.status(500).send('数据库错误。').end();
                    } else {
                        res.redirect('/admin/banner');
                    }
                })
                break;
        
            default:
                // 查询banner数据
                db.query(`SELECT * FROM banner_table`, (err, banner_data) => {
                    if (err) {
                        res.status(500).send('数据库错误。').end();
                    } else {
                        // 渲染并传参
                        res.render('./admin/banner.ejs',{banner_data});
                    }
                });
                break;
        }
    });
    router.post('/', (req, res, next) => {
        // 获取到post数据
        const bt标题 = req.body.标题;
        const jj简介 = req.body.简介;
        const dz地址 = req.body.链接地址;
        if (!bt标题 || !jj简介 || !dz地址) {
            res.status(400).send('参数不合法。').end();
        } else {
            // 要修改还是要添加
            if (req.body.mod_id) {
                // 修改（更新）数据到数据库
                db.query(`UPDATE banner_table SET \
                    title='${bt标题}',\
                    description='${jj简介}',\
                    href='${dz地址}' \
                    WHERE ID=${req.body.mod_id}`,
                (err, data) => {
                    if (err) {
                        console.log(err);
                        res.status(500).send('数据库错误。').end();
                    } else {
                        res.redirect('/admin/banner');
                    }
                })
            } else {
                // 添加（插入）数据到数据库
                db.query(`INSERT INTO banner_table (title,description,href) VALUES('${bt标题}','${jj简介}','${dz地址}')`, 
                (err, data) => {
                    if (err) {
                        console.error(err);
                        res.status(500).send('数据库错误。').end();
                    } else {
                        // 跳转（重定向）到原地址
                        res.redirect('/admin/banner');
                    }
                });
            }
        }
        
    });
    return router;
}